package com.wysql.ascost.model.info;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import cn.hutool.core.util.StrUtil;

/**
 * 导入操作台账 InfoImportresultExample
 *
 * @author wysqlauto_自动生成
 * @date 2025-02-28 14:07:11
 */
public class InfoImportresultExample {

    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public InfoImportresultExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }


        public Criteria andIdIsNull() {
            addCriterion("id is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("id is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(String value) {
            addCriterion("id =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(String value) {
            addCriterion("id <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(String value) {
            addCriterion("id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(String value) {
            addCriterion("id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(String value) {
            addCriterion("id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(String value) {
            addCriterion("id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLike(String value) {
            addCriterion("id like", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotLike(String value) {
            addCriterion("id not like", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<String> values) {
            addCriterion("id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<String> values) {
            addCriterion("id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(String value1, String value2) {
            addCriterion("id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(String value1, String value2) {
            addCriterion("id not between", value1, value2, "id");
            return (Criteria) this;
        }


        public Criteria andCreatetimeIsNull() {
            addCriterion("createtime is null");
            return (Criteria) this;
        }

        public Criteria andCreatetimeIsNotNull() {
            addCriterion("createtime is not null");
            return (Criteria) this;
        }

        public Criteria andCreatetimeEqualTo(Date value) {
            addCriterion("createtime =", value, "createtime");
            return (Criteria) this;
        }

        public Criteria andCreatetimeNotEqualTo(Date value) {
            addCriterion("createtime <>", value, "createtime");
            return (Criteria) this;
        }

        public Criteria andCreatetimeGreaterThan(Date value) {
            addCriterion("createtime >", value, "createtime");
            return (Criteria) this;
        }

        public Criteria andCreatetimeGreaterThanOrEqualTo(Date value) {
            addCriterion("createtime >=", value, "createtime");
            return (Criteria) this;
        }

        public Criteria andCreatetimeLessThan(Date value) {
            addCriterion("createtime <", value, "createtime");
            return (Criteria) this;
        }

        public Criteria andCreatetimeLessThanOrEqualTo(Date value) {
            addCriterion("createtime <=", value, "createtime");
            return (Criteria) this;
        }

        public Criteria andCreatetimeLike(Date value) {
            addCriterion("createtime like", value, "createtime");
            return (Criteria) this;
        }

        public Criteria andCreatetimeNotLike(Date value) {
            addCriterion("createtime not like", value, "createtime");
            return (Criteria) this;
        }

        public Criteria andCreatetimeIn(List<Date> values) {
            addCriterion("createtime in", values, "createtime");
            return (Criteria) this;
        }

        public Criteria andCreatetimeNotIn(List<Date> values) {
            addCriterion("createtime not in", values, "createtime");
            return (Criteria) this;
        }

        public Criteria andCreatetimeBetween(Date value1, Date value2) {
            addCriterion("createtime between", value1, value2, "createtime");
            return (Criteria) this;
        }

        public Criteria andCreatetimeNotBetween(Date value1, Date value2) {
            addCriterion("createtime not between", value1, value2, "createtime");
            return (Criteria) this;
        }


        public Criteria andBatchnumIsNull() {
            addCriterion("batchnum is null");
            return (Criteria) this;
        }

        public Criteria andBatchnumIsNotNull() {
            addCriterion("batchnum is not null");
            return (Criteria) this;
        }

        public Criteria andBatchnumEqualTo(String value) {
            addCriterion("batchnum =", value, "batchnum");
            return (Criteria) this;
        }

        public Criteria andBatchnumNotEqualTo(String value) {
            addCriterion("batchnum <>", value, "batchnum");
            return (Criteria) this;
        }

        public Criteria andBatchnumGreaterThan(String value) {
            addCriterion("batchnum >", value, "batchnum");
            return (Criteria) this;
        }

        public Criteria andBatchnumGreaterThanOrEqualTo(String value) {
            addCriterion("batchnum >=", value, "batchnum");
            return (Criteria) this;
        }

        public Criteria andBatchnumLessThan(String value) {
            addCriterion("batchnum <", value, "batchnum");
            return (Criteria) this;
        }

        public Criteria andBatchnumLessThanOrEqualTo(String value) {
            addCriterion("batchnum <=", value, "batchnum");
            return (Criteria) this;
        }

        public Criteria andBatchnumLike(String value) {
            addCriterion("batchnum like", value, "batchnum");
            return (Criteria) this;
        }

        public Criteria andBatchnumNotLike(String value) {
            addCriterion("batchnum not like", value, "batchnum");
            return (Criteria) this;
        }

        public Criteria andBatchnumIn(List<String> values) {
            addCriterion("batchnum in", values, "batchnum");
            return (Criteria) this;
        }

        public Criteria andBatchnumNotIn(List<String> values) {
            addCriterion("batchnum not in", values, "batchnum");
            return (Criteria) this;
        }

        public Criteria andBatchnumBetween(String value1, String value2) {
            addCriterion("batchnum between", value1, value2, "batchnum");
            return (Criteria) this;
        }

        public Criteria andBatchnumNotBetween(String value1, String value2) {
            addCriterion("batchnum not between", value1, value2, "batchnum");
            return (Criteria) this;
        }


        public Criteria andTotalIsNull() {
            addCriterion("total is null");
            return (Criteria) this;
        }

        public Criteria andTotalIsNotNull() {
            addCriterion("total is not null");
            return (Criteria) this;
        }

        public Criteria andTotalEqualTo(Integer value) {
            addCriterion("total =", value, "total");
            return (Criteria) this;
        }

        public Criteria andTotalNotEqualTo(Integer value) {
            addCriterion("total <>", value, "total");
            return (Criteria) this;
        }

        public Criteria andTotalGreaterThan(Integer value) {
            addCriterion("total >", value, "total");
            return (Criteria) this;
        }

        public Criteria andTotalGreaterThanOrEqualTo(Integer value) {
            addCriterion("total >=", value, "total");
            return (Criteria) this;
        }

        public Criteria andTotalLessThan(Integer value) {
            addCriterion("total <", value, "total");
            return (Criteria) this;
        }

        public Criteria andTotalLessThanOrEqualTo(Integer value) {
            addCriterion("total <=", value, "total");
            return (Criteria) this;
        }

        public Criteria andTotalLike(Integer value) {
            addCriterion("total like", value, "total");
            return (Criteria) this;
        }

        public Criteria andTotalNotLike(Integer value) {
            addCriterion("total not like", value, "total");
            return (Criteria) this;
        }

        public Criteria andTotalIn(List<Integer> values) {
            addCriterion("total in", values, "total");
            return (Criteria) this;
        }

        public Criteria andTotalNotIn(List<Integer> values) {
            addCriterion("total not in", values, "total");
            return (Criteria) this;
        }

        public Criteria andTotalBetween(Integer value1, Integer value2) {
            addCriterion("total between", value1, value2, "total");
            return (Criteria) this;
        }

        public Criteria andTotalNotBetween(Integer value1, Integer value2) {
            addCriterion("total not between", value1, value2, "total");
            return (Criteria) this;
        }


        public Criteria andSuccesscountIsNull() {
            addCriterion("successcount is null");
            return (Criteria) this;
        }

        public Criteria andSuccesscountIsNotNull() {
            addCriterion("successcount is not null");
            return (Criteria) this;
        }

        public Criteria andSuccesscountEqualTo(Integer value) {
            addCriterion("successcount =", value, "successcount");
            return (Criteria) this;
        }

        public Criteria andSuccesscountNotEqualTo(Integer value) {
            addCriterion("successcount <>", value, "successcount");
            return (Criteria) this;
        }

        public Criteria andSuccesscountGreaterThan(Integer value) {
            addCriterion("successcount >", value, "successcount");
            return (Criteria) this;
        }

        public Criteria andSuccesscountGreaterThanOrEqualTo(Integer value) {
            addCriterion("successcount >=", value, "successcount");
            return (Criteria) this;
        }

        public Criteria andSuccesscountLessThan(Integer value) {
            addCriterion("successcount <", value, "successcount");
            return (Criteria) this;
        }

        public Criteria andSuccesscountLessThanOrEqualTo(Integer value) {
            addCriterion("successcount <=", value, "successcount");
            return (Criteria) this;
        }

        public Criteria andSuccesscountLike(Integer value) {
            addCriterion("successcount like", value, "successcount");
            return (Criteria) this;
        }

        public Criteria andSuccesscountNotLike(Integer value) {
            addCriterion("successcount not like", value, "successcount");
            return (Criteria) this;
        }

        public Criteria andSuccesscountIn(List<Integer> values) {
            addCriterion("successcount in", values, "successcount");
            return (Criteria) this;
        }

        public Criteria andSuccesscountNotIn(List<Integer> values) {
            addCriterion("successcount not in", values, "successcount");
            return (Criteria) this;
        }

        public Criteria andSuccesscountBetween(Integer value1, Integer value2) {
            addCriterion("successcount between", value1, value2, "successcount");
            return (Criteria) this;
        }

        public Criteria andSuccesscountNotBetween(Integer value1, Integer value2) {
            addCriterion("successcount not between", value1, value2, "successcount");
            return (Criteria) this;
        }


        public Criteria andFailcountIsNull() {
            addCriterion("failcount is null");
            return (Criteria) this;
        }

        public Criteria andFailcountIsNotNull() {
            addCriterion("failcount is not null");
            return (Criteria) this;
        }

        public Criteria andFailcountEqualTo(Integer value) {
            addCriterion("failcount =", value, "failcount");
            return (Criteria) this;
        }

        public Criteria andFailcountNotEqualTo(Integer value) {
            addCriterion("failcount <>", value, "failcount");
            return (Criteria) this;
        }

        public Criteria andFailcountGreaterThan(Integer value) {
            addCriterion("failcount >", value, "failcount");
            return (Criteria) this;
        }

        public Criteria andFailcountGreaterThanOrEqualTo(Integer value) {
            addCriterion("failcount >=", value, "failcount");
            return (Criteria) this;
        }

        public Criteria andFailcountLessThan(Integer value) {
            addCriterion("failcount <", value, "failcount");
            return (Criteria) this;
        }

        public Criteria andFailcountLessThanOrEqualTo(Integer value) {
            addCriterion("failcount <=", value, "failcount");
            return (Criteria) this;
        }

        public Criteria andFailcountLike(Integer value) {
            addCriterion("failcount like", value, "failcount");
            return (Criteria) this;
        }

        public Criteria andFailcountNotLike(Integer value) {
            addCriterion("failcount not like", value, "failcount");
            return (Criteria) this;
        }

        public Criteria andFailcountIn(List<Integer> values) {
            addCriterion("failcount in", values, "failcount");
            return (Criteria) this;
        }

        public Criteria andFailcountNotIn(List<Integer> values) {
            addCriterion("failcount not in", values, "failcount");
            return (Criteria) this;
        }

        public Criteria andFailcountBetween(Integer value1, Integer value2) {
            addCriterion("failcount between", value1, value2, "failcount");
            return (Criteria) this;
        }

        public Criteria andFailcountNotBetween(Integer value1, Integer value2) {
            addCriterion("failcount not between", value1, value2, "failcount");
            return (Criteria) this;
        }


        public Criteria andMemberidIsNull() {
            addCriterion("memberid is null");
            return (Criteria) this;
        }

        public Criteria andMemberidIsNotNull() {
            addCriterion("memberid is not null");
            return (Criteria) this;
        }

        public Criteria andMemberidEqualTo(String value) {
            addCriterion("memberid =", value, "memberid");
            return (Criteria) this;
        }

        public Criteria andMemberidNotEqualTo(String value) {
            addCriterion("memberid <>", value, "memberid");
            return (Criteria) this;
        }

        public Criteria andMemberidGreaterThan(String value) {
            addCriterion("memberid >", value, "memberid");
            return (Criteria) this;
        }

        public Criteria andMemberidGreaterThanOrEqualTo(String value) {
            addCriterion("memberid >=", value, "memberid");
            return (Criteria) this;
        }

        public Criteria andMemberidLessThan(String value) {
            addCriterion("memberid <", value, "memberid");
            return (Criteria) this;
        }

        public Criteria andMemberidLessThanOrEqualTo(String value) {
            addCriterion("memberid <=", value, "memberid");
            return (Criteria) this;
        }

        public Criteria andMemberidLike(String value) {
            addCriterion("memberid like", value, "memberid");
            return (Criteria) this;
        }

        public Criteria andMemberidNotLike(String value) {
            addCriterion("memberid not like", value, "memberid");
            return (Criteria) this;
        }

        public Criteria andMemberidIn(List<String> values) {
            addCriterion("memberid in", values, "memberid");
            return (Criteria) this;
        }

        public Criteria andMemberidNotIn(List<String> values) {
            addCriterion("memberid not in", values, "memberid");
            return (Criteria) this;
        }

        public Criteria andMemberidBetween(String value1, String value2) {
            addCriterion("memberid between", value1, value2, "memberid");
            return (Criteria) this;
        }

        public Criteria andMemberidNotBetween(String value1, String value2) {
            addCriterion("memberid not between", value1, value2, "memberid");
            return (Criteria) this;
        }


        public Criteria andMemoIsNull() {
            addCriterion("memo is null");
            return (Criteria) this;
        }

        public Criteria andMemoIsNotNull() {
            addCriterion("memo is not null");
            return (Criteria) this;
        }

        public Criteria andMemoEqualTo(String value) {
            addCriterion("memo =", value, "memo");
            return (Criteria) this;
        }

        public Criteria andMemoNotEqualTo(String value) {
            addCriterion("memo <>", value, "memo");
            return (Criteria) this;
        }

        public Criteria andMemoGreaterThan(String value) {
            addCriterion("memo >", value, "memo");
            return (Criteria) this;
        }

        public Criteria andMemoGreaterThanOrEqualTo(String value) {
            addCriterion("memo >=", value, "memo");
            return (Criteria) this;
        }

        public Criteria andMemoLessThan(String value) {
            addCriterion("memo <", value, "memo");
            return (Criteria) this;
        }

        public Criteria andMemoLessThanOrEqualTo(String value) {
            addCriterion("memo <=", value, "memo");
            return (Criteria) this;
        }

        public Criteria andMemoLike(String value) {
            addCriterion("memo like", value, "memo");
            return (Criteria) this;
        }

        public Criteria andMemoNotLike(String value) {
            addCriterion("memo not like", value, "memo");
            return (Criteria) this;
        }

        public Criteria andMemoIn(List<String> values) {
            addCriterion("memo in", values, "memo");
            return (Criteria) this;
        }

        public Criteria andMemoNotIn(List<String> values) {
            addCriterion("memo not in", values, "memo");
            return (Criteria) this;
        }

        public Criteria andMemoBetween(String value1, String value2) {
            addCriterion("memo between", value1, value2, "memo");
            return (Criteria) this;
        }

        public Criteria andMemoNotBetween(String value1, String value2) {
            addCriterion("memo not between", value1, value2, "memo");
            return (Criteria) this;
        }


        public Criteria andStepIsNull() {
            addCriterion("step is null");
            return (Criteria) this;
        }

        public Criteria andStepIsNotNull() {
            addCriterion("step is not null");
            return (Criteria) this;
        }

        public Criteria andStepEqualTo(Integer value) {
            addCriterion("step =", value, "step");
            return (Criteria) this;
        }

        public Criteria andStepNotEqualTo(Integer value) {
            addCriterion("step <>", value, "step");
            return (Criteria) this;
        }

        public Criteria andStepGreaterThan(Integer value) {
            addCriterion("step >", value, "step");
            return (Criteria) this;
        }

        public Criteria andStepGreaterThanOrEqualTo(Integer value) {
            addCriterion("step >=", value, "step");
            return (Criteria) this;
        }

        public Criteria andStepLessThan(Integer value) {
            addCriterion("step <", value, "step");
            return (Criteria) this;
        }

        public Criteria andStepLessThanOrEqualTo(Integer value) {
            addCriterion("step <=", value, "step");
            return (Criteria) this;
        }

        public Criteria andStepLike(Integer value) {
            addCriterion("step like", value, "step");
            return (Criteria) this;
        }

        public Criteria andStepNotLike(Integer value) {
            addCriterion("step not like", value, "step");
            return (Criteria) this;
        }

        public Criteria andStepIn(List<Integer> values) {
            addCriterion("step in", values, "step");
            return (Criteria) this;
        }

        public Criteria andStepNotIn(List<Integer> values) {
            addCriterion("step not in", values, "step");
            return (Criteria) this;
        }

        public Criteria andStepBetween(Integer value1, Integer value2) {
            addCriterion("step between", value1, value2, "step");
            return (Criteria) this;
        }

        public Criteria andStepNotBetween(Integer value1, Integer value2) {
            addCriterion("step not between", value1, value2, "step");
            return (Criteria) this;
        }


        public Criteria andTypeIsNull() {
            addCriterion("type is null");
            return (Criteria) this;
        }

        public Criteria andTypeIsNotNull() {
            addCriterion("type is not null");
            return (Criteria) this;
        }

        public Criteria andTypeEqualTo(Integer value) {
            addCriterion("type =", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeNotEqualTo(Integer value) {
            addCriterion("type <>", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeGreaterThan(Integer value) {
            addCriterion("type >", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeGreaterThanOrEqualTo(Integer value) {
            addCriterion("type >=", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeLessThan(Integer value) {
            addCriterion("type <", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeLessThanOrEqualTo(Integer value) {
            addCriterion("type <=", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeLike(Integer value) {
            addCriterion("type like", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeNotLike(Integer value) {
            addCriterion("type not like", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeIn(List<Integer> values) {
            addCriterion("type in", values, "type");
            return (Criteria) this;
        }

        public Criteria andTypeNotIn(List<Integer> values) {
            addCriterion("type not in", values, "type");
            return (Criteria) this;
        }

        public Criteria andTypeBetween(Integer value1, Integer value2) {
            addCriterion("type between", value1, value2, "type");
            return (Criteria) this;
        }

        public Criteria andTypeNotBetween(Integer value1, Integer value2) {
            addCriterion("type not between", value1, value2, "type");
            return (Criteria) this;
        }


        public Criteria andLikeQuery(InfoImportresult record) {
            List<String> list = new ArrayList<String>();
            List<String> list2 = new ArrayList<String>();
            StringBuffer buffer = new StringBuffer();
            if (record.getId() != null && StrUtil.isNotEmpty(record.getId().toString())) {
                list.add("ifnull(id,'')");
            }
            if (record.getCreatetime() != null && StrUtil.isNotEmpty(record.getCreatetime().toString())) {
                list.add("ifnull(createtime,'')");
            }
            if (record.getBatchnum() != null && StrUtil.isNotEmpty(record.getBatchnum().toString())) {
                list.add("ifnull(batchnum,'')");
            }
            if (record.getTotal() != null && StrUtil.isNotEmpty(record.getTotal().toString())) {
                list.add("ifnull(total,'')");
            }
            if (record.getSuccesscount() != null && StrUtil.isNotEmpty(record.getSuccesscount().toString())) {
                list.add("ifnull(successcount,'')");
            }
            if (record.getFailcount() != null && StrUtil.isNotEmpty(record.getFailcount().toString())) {
                list.add("ifnull(failcount,'')");
            }
            if (record.getMemberid() != null && StrUtil.isNotEmpty(record.getMemberid().toString())) {
                list.add("ifnull(memberid,'')");
            }
            if (record.getMemo() != null && StrUtil.isNotEmpty(record.getMemo().toString())) {
                list.add("ifnull(memo,'')");
            }
            if (record.getStep() != null && StrUtil.isNotEmpty(record.getStep().toString())) {
                list.add("ifnull(step,'')");
            }
            if (record.getType() != null && StrUtil.isNotEmpty(record.getType().toString())) {
                list.add("ifnull(type,'')");
            }
            if (record.getId() != null && StrUtil.isNotEmpty(record.getId().toString())) {
                list2.add("'%" + record.getId() + "%'");
            }
            if (record.getCreatetime() != null && StrUtil.isNotEmpty(record.getCreatetime().toString())) {
                list2.add("'%" + record.getCreatetime() + "%'");
            }
            if (record.getBatchnum() != null && StrUtil.isNotEmpty(record.getBatchnum().toString())) {
                list2.add("'%" + record.getBatchnum() + "%'");
            }
            if (record.getTotal() != null && StrUtil.isNotEmpty(record.getTotal().toString())) {
                list2.add("'%" + record.getTotal() + "%'");
            }
            if (record.getSuccesscount() != null && StrUtil.isNotEmpty(record.getSuccesscount().toString())) {
                list2.add("'%" + record.getSuccesscount() + "%'");
            }
            if (record.getFailcount() != null && StrUtil.isNotEmpty(record.getFailcount().toString())) {
                list2.add("'%" + record.getFailcount() + "%'");
            }
            if (record.getMemberid() != null && StrUtil.isNotEmpty(record.getMemberid().toString())) {
                list2.add("'%" + record.getMemberid() + "%'");
            }
            if (record.getMemo() != null && StrUtil.isNotEmpty(record.getMemo().toString())) {
                list2.add("'%" + record.getMemo() + "%'");
            }
            if (record.getStep() != null && StrUtil.isNotEmpty(record.getStep().toString())) {
                list2.add("'%" + record.getStep() + "%'");
            }
            if (record.getType() != null && StrUtil.isNotEmpty(record.getType().toString())) {
                list2.add("'%" + record.getType() + "%'");
            }
            buffer.append(" CONCAT(");
            buffer.append(StrUtil.join(",", list));
            buffer.append(")");
            buffer.append(" like CONCAT(");
            buffer.append(StrUtil.join(",", list2));
            buffer.append(")");
            if (!" CONCAT() like CONCAT()".equals(buffer.toString())) {
                addCriterion(buffer.toString());
            }
            return (Criteria) this;
        }

        public Criteria andLikeQuery2(String searchText) {
            List<String> list = new ArrayList<String>();
            StringBuffer buffer = new StringBuffer();
            list.add("ifnull(id,'')");
            list.add("ifnull(createtime,'')");
            list.add("ifnull(batchnum,'')");
            list.add("ifnull(total,'')");
            list.add("ifnull(successcount,'')");
            list.add("ifnull(failcount,'')");
            list.add("ifnull(memberid,'')");
            list.add("ifnull(memo,'')");
            list.add("ifnull(step,'')");
            list.add("ifnull(type,'')");
            buffer.append(" CONCAT(");
            buffer.append(StrUtil.join(",", list));
            buffer.append(")");
            buffer.append("like '%");
            buffer.append(searchText);
            buffer.append("%'");
            addCriterion(buffer.toString());
            return (Criteria) this;
        }

    }

    public static class Criteria extends GeneratedCriteria {
        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}